/*
 * Matriz.h
 *
 *  Created on: 29/11/2010
 *      Author: santiago
 */

#ifndef MATRIZ_H_
#define MATRIZ_H_

#include <iostream>
#include <vector>
#include <stdio.h>
#include <math.h>
#include <cstdlib>

using namespace std;

class Matriz {
private:

public:
        vector<vector <int> > matriz;
		int tamanioMatriz;

        Matriz();
        Matriz(int tamanioMatriz); //armo Matriz Identidad
        Matriz(int h1, int h2, int tamanio);
        long InversaMOD(long num);
		void ImprimirMatriz();
		vector<unsigned int> ObtenerVector(vector<unsigned int> vec);
		vector<unsigned char> nuevoObtenerVector(vector<unsigned char> vec);
		vector<unsigned int> ObtenerVectorAlVerres(vector<unsigned int> vec);
		vector<unsigned char> nuevoObtenerVectorAlVerres(vector<unsigned char> vec);
		int determinanteLoco(vector<vector <int> > matriz, int n);
		bool validarSubMatriz(vector<vector <int> > matriz);
		vector<vector <int> > calcularInversaLoca();
		vector<vector <int> > crearSubMatriz(vector<vector <int> > matriz, int i, int j);
		long calcularDeterminante();
		virtual ~Matriz();
};

#endif /* MATRIZ_H_ */
